Updates specified cells

<div class="definition">
    update(options)
</div>

<div class="arguments">
    <table>
    <tr>
        <td>options</td>
        <td><b>objects</b>, <i>optional</i> an object with parameters for the update</td>
    </tr>
    </table>
</div>
Returns time it took to update (in milliseconds).

<h4>Description</h4>
This method is super fast and update grid within a few milliseconds (<span class="property">grid.refresh()</span>
in comparison take about 30-80ms depending on the data). It will only update records within the virtual scroll and
those that changed.
<div style="height: 10px"></div>

If called without arguments, it will update entire grid. If column value did not change, (DOM has same html as
what <span class="property">grid.getCellValue()</span> returns for the specified cell), it will not reinsert HTML into the DOM.
The update function will transform data through renderers, and also take into account classes and styles defined on the
column or record level. It will keep current selection in the grid, if any.
<div style="height: 10px"></div>

The options
<textarea class="javascript">
{
    cells: [],              // array of { index, column } pairs to update
    fullCellRefresh: false, // weather full-cell refresh is needed (TD level), othewiser only inside TD`
    ignoreColumns: []       // array of column indexes or column field names
}
</textarea>

If you have following grid:
<textarea class="javascript">
let grid = new w2grid({
    name    : 'grid',
    columns: [
        { field: 'recid', text: 'ID', size: '50px' },
        { field: 'lname', text: 'Last Name', size: '30%' },
        { field: 'fname', text: 'First Name', size: '30%' },
        { field: 'email', text: 'Email', size: '40%' },
        { field: 'sdate', text: 'End Date', size: '120px' }
    ],
    records: [
        { recid: 1, fname: 'John', lname: 'doe', email: 'vitali@gmail.com', sdate: '1/3/2012' },
        { recid: 2, fname: 'Stuart', lname: 'Motzart', email: 'jdoe@gmail.com', sdate: '2/4/2012' },
        { recid: 3, fname: 'Jin', lname: 'Franson', email: '--', sdate: '4/23/2012' },
        { recid: 4, fname: 'Susan', lname: 'Ottie', email: 'jdoe@gmail.com', sdate: '5/3/2012' },
        { recid: 5, fname: 'Kelly', lname: 'Silver', email: 'jdoe@gmail.com', sdate: '4/3/2012' },
        { recid: 6, fname: 'Francis', lname: 'Gatos', email: 'vitali@gmail.com', sdate: '2/5/2012' }
    ]
});
</textarea>

Update what's changed:
<textarea class="javascript">
w2ui.grid.records[2].fname = 'Another'
w2ui.grid.update();
</textarea>

Update specific cells:
<textarea class="javascript">
w2ui.grid.records[2].fname = 'Another'
w2ui.grid.update({ cells: [{ index: 2, column: 1}] });
</textarea>

Update all cells on screen except cells in the specified columns:
<textarea class="javascript">
w2ui.grid.update({ ignoreColumns: [0, 'email'] }); // can be either index or column.field
</textarea>

Update all cells that changed with full cell refresh (not frequent):
<textarea class="javascript">
w2ui.grid.update({ fullCellRefresh: true });
</textarea>